package com.ruoyi.cost.mapper;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cost.domain.AccAmount;
import com.ruoyi.cost.domain.AccSubject;
import com.ruoyi.cost.domain.Balance;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 科目余额及发生额Mapper接口
 * 
 * @author 王志旸
 * @date 2024-07-09
 */
@Mapper
public interface AccAmountMapper  extends BaseMapper<AccAmount>

{
    /**
     * 查询科目余额及发生额
     * 
     * @param id 科目余额及发生额主键
     * @return 科目余额及发生额
     */
    public AccAmount selectAccAmountById(String id);

    /**
     * 查询科目余额及发生额列表
     * 
//     * @param accAmount 科目余额及发生额
     * @return 科目余额及发生额集合
     */
    public List<AccAmount> selectAccAmountList(@Param("accMode") String accMode,@Param("accSubName") String accSubName);

    /**
     * 新增科目余额及发生额
     * 
     * @param accAmount 科目余额及发生额
     * @return 结果
     */
    public int insertAccAmount(AccAmount accAmount);

    /**
     * 修改科目余额及发生额
     * 
     * @param accAmount 科目余额及发生额
     * @return 结果
     */
    public int updateAccAmount(AccAmount accAmount);

    /**
     * 删除科目余额及发生额
     * 
     * @param id 科目余额及发生额主键
     * @return 结果
     */
    public int deleteAccAmountById(String id);

    /**
     * 批量删除科目余额及发生额
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAccAmountByIds(String[] ids);

    List<AccAmount> selectAccAmountList1(AccAmount accAmount);

    List<Balance> listBalance(String accMode);
    List<AccAmount> listSupBalance(@Param("accMode") String accMode,@Param("accSubNum") String accSubNum);
    List<AccAmount> listSupBalance2(@Param("accMode") String accMode,@Param("accSubNum") String accSubNum);

    AccAmount getBeginYearAmount(@Param("vouSubType") String vouSubType, @Param("accMode") String accMode);

    AccAmount getEndYearAmount(@Param("vouSubType") String vouSubType,@Param("accMode") String accMode);

    List<AccAmount> getBeginCurr(@Param("accMode") String accMode,@Param("accSubNum") String accSubNum);
    AccAmount getBeginCurr1(@Param("accMode") String accMode,@Param("accSubNum") String accSubNum);

    String getSupSpares(@Param("accSubNum")String accSubNum,@Param("accBusiness") String accBusiness,@Param("id") String id,@Param("accMode") String accMode,@Param("spare") String spare);
    String getVouSupSpares(@Param("accSubNum")String accSubNum,@Param("accBusiness") String accBusiness,@Param("id") String id,@Param("accMode") String accMode,@Param("spare") String spare);

    Map getSubAssistedAcc(@Param("accSubNum") String accSubNum,@Param("accBusiness") String accBusiness,@Param("accMode") String accMode);

    List<AccAmount> getBeginCurr2(@Param("accMode") String accMode, @Param("accSubNum") String accSubName,@Param("spare") String spare,@Param("spareList") List<String> spareList);
}
